node.js + mysqlでMySQLに接続し、テーブルからデータを取得する
おばんです、最近EM20を聞いて巨災対をイメージしながら仕事をしている田中です。
webとかその周辺知識が欲しくなってnode.jsはじめました。AWS Lambdaとか使うとサクッとオープンなものも作れるそうですしね。
環境
node.jsを扱うためにはmysqlというパッケージを使います。
- node.js: v6.2.2
- mysql: 2.11.1
- MySQL: 14.14
前提
今回はすでに作成済みのデータベースにnode.jsからアクセスしてデータを取得します。
MySQLの準備
こちらを参考にさせていただきました。
MacにMySQLをインストールして触ってみる | Developers.IO
作成済みのデータについて
先述したリンクを参考に作成したデータベース、テーブル、レコードは以下のような状態になっています。
- データベース名:testdatabase
- テーブル名:userdata
id | name |
---|---|
1 | TanakaKenji |
node.js側の準備
mysqlのインストール
プロジェクトのルートディレクトリでmysqlパッケージを追加
$ npm install mysql
ソースコード
コード全文は以下の通り。
// requireの設定 const mysql = require('mysql'); // MySQLとのコネクションの作成 const connection = mysql.createConnection({ host : 'localhost', user : 'root', database: 'testdatabase' }); // 接続 connection.connect(); // userdataの取得 connection.query('SELECT * from userdata;', function (err, rows, fields) { if (err) { console.log('err: ' + err); } console.log('name: ' + rows[0].name); console.log('id: ' + rows[0].id); }); // userdataのカラムを取得 connection.query('SHOW COLUMNS FROM userdata;', function (err, rows, fields) { if (err) { console.log('err: ' + err); } console.log(rows[0].Field); console.log(rows[1].Field); }); // 接続終了 connection.end();
出力結果
name: TanakaKenji id: 1 id name
解説
mysql.createConnection({});
データベースに接続するための情報を書く。 passwordが設定されている場合などはそれも書く。
connection.euqry(<SQL文>, function (err, rows, fields) {});
書いたSQL文の取得結果を{}内で処理する。
まとめ
SQL文とデータベースに関する知識もつけていく必要がある。
今回は前もってターミナルを用いてあらかじめデータベースを作っていたが、node.jsからデータベースの作成、テーブルの作成、レコードのinsertなどもやっていきたい。